iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0

昨天說到了 Cookie,今天來研究一下 Session。

Cookie和 Session 的共同之處在於:Cookie 和 Session都是用來跟蹤瀏覽器使用者身份的會話方式。
Cookie 和 Session的 區別是:Cookie資料儲存在客戶端,Session資料儲存在伺服器端

Session

在網上看了很多 Cookie 和 Session 的比較,我覺得比較容易懂的解釋
我們可以拿會員卡來當例子,

今天有一間你常常去的咖啡店,只要出示會員卡就能夠有折扣,但是咖啡店只認卡不認人,這個就是 Cookie 做的事。

因為認卡不認人,這件事情是有漏洞的,所以我們要有會員資料,過卡的時候,咖啡店會確認一下客戶的一些基本資料,這就是 Session 做的事。

那我們要怎麼用會員卡呢?

  1. 使用 Cookie (set cookie),直接拿一張會員卡給咖啡店。
  2. 直接輸出,然後嵌入,就像把你的會員卡卡號記起來。

會員卡有了之後怎麼對資料?

  1. 使用 Cookie
  2. 運用標準的 Query string/POST body方法。

所以在實作上,預設會採用 Cookie 來完成,在瀏覽器建立資料後,伺服器會傳回給 Cookie,然後使用者就可以使用 Cookie 來記錄資料。

在這裡要特別注意的是,就算沒有 Cookie 的存在,Session 機制也可以正常運作。Cookie 在 Session 機制中,可以扮演許多角色,也可以對原始的 Session 機制做許多改良。

Cookie-based Session

以前,若是小型的網站, Cookie 在 client 端,Session 在 server 端,這件事情是沒有問題的,但是對現在流量很大的網站,要如何在不同的 server 裡去撈出使用者的 Session?

所以,為了因應這種情況,Cookie-based Session 就被視為一種解決方案,可以讓使用者的 Session 暫時存在 Cookie 內,就像是你的會員卡上寫了你的基本資料。

那也因為 Cookie 有大小的限制,所以大部分的網站會使用 Cookie-based 加上後端儲存 Session 並行來處理。

Session 傳值

Session 傳值指的是利用 Session 儲存資料的機制,讓不同頁面間可以互相傳遞資料。


明天見:)


上一篇
DAY 12 網頁資料儲存 Cookie
下一篇
DAY 14 LocalStorage、sessionStorage
系列文
半路出家,文組新手學 Javascript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言